Reverse Engineering: Algorithms for Program Graph Production
نویسندگان
چکیده
The paper proposes an algebraic representation of program modules, called F(p), and illustrates the algorithms that use F(p) to generate program graph models for measurement, documentation and testing activities. The representation refers to procedural languages, D-structured programs and one-in/one-out modules but its definition can be extended to programs structured in terms of an arbitrary set of onein/one-out legal control structures. Since it is possible to produce F(p) directly from the program code using reverse engineering techniques, the algorithms proposed are of considerable interest for the setting up of tools supporting the program comprehension phase, which is a fundamental first step in any maintenance operation.
منابع مشابه
Analyzing XFIG with GUPRO
GUPRO (Generic Unit for Program Understanding, http://www.gupro.de) provides an adaptable and extesible workbench for program understanding and software reengineering. GUPRO is strongly based on graph technology, i. e. source code is parsed into graph structures which are accessible by graph algorithms and a general graph query language GReQL. In GUPRO, these base technologies are combined into...
متن کاملCode Obfuscation against Static and Dynamic Reverse Engineering
The process of reverse engineering allows attackers to understand the behavior of software and extract proprietary algorithms and data structures (e.g. cryptographic keys) from it. Code obfuscation is frequently employed to mitigate this risk. However, while most of today’s obfuscation methods are targeted against static reverse engineering, where the attacker analyzes the code without actually...
متن کاملNode Coarsening Calculi for Program Slicing
Several approaches to reverse and re-engineering are based upon program slicing. Unfortunately, for large systems, such as those which typically form the subject of reverse engineering activities, the space and time requirements of slicing can be a barrier to successful application. Faced with this problem, several authors have found it helpful to merge Control Flow Graph (CFG) nodes, thereby i...
متن کاملGraph Technology and Semantic Web in Reverse Engineering - A Comparison -
Reverse engineering tools are mostly based on analyzing code repositories. Various technological spaces for realizing these repositories including appropriate analysis techniques exist. Graph technology and semantic web based technologies provide elaborated and sufficient means to analyze software structures. This paper elaborates differences and similarities of both technological spaces by com...
متن کاملOptimizing Cost Function in Imperialist Competitive Algorithm for Path Coverage Problem in Software Testing
Search-based optimization methods have been used for software engineering activities such as software testing. In the field of software testing, search-based test data generation refers to application of meta-heuristic optimization methods to generate test data that cover the code space of a program. Automatic test data generation that can cover all the paths of software is known as a major cha...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- Softw., Pract. Exper.
دوره 21 شماره
صفحات -
تاریخ انتشار 1991